package cn.tedu.ba01;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

import java.util.Date;


/*@Aspect:是aspectj框架中的注解
        表示当前类是一个切面类
        切面类：用来给业务方法增加功能的类
        位置：在类定义的上面
*/
@Aspect
public class MyAspect {
    /*切面方法的定义要求：
      公共的public 没有返回值  可以有参数，可以无参数
      如果有参数，参数不是自定义的，有固定的几个参数类型可以使用
    * */

    /*@Before:前置通知注释
    * 属性：value 写切入点表达式，execution(方法访问权限 返回类型 包名.类名.方法名(参数类型) )
    *
    * */
    @Before(value = "execution(public void cn.tedu.ba01.SomeServiceImpl.doSome(String,Integer))")
    public void myBefore(){
        System.out.println("前置通知，切面功能：在目标方法执行之前输出时间："+new Date());
    }

    @Before(value = "execution(* *..SomeServiceImpl.doSome(String,Integer))")
    public void myBefore2(){
        System.out.println("前置通知，切面功能：在目标方法执行之前输出时间："+new Date());
    }




}
